<template>
  <div class="form-setting-panel">
    <!-- start 标题 -->
    <form-title-setting
      v-if="1 == 2"
      :field="field"
      :setting="setting"
      @input="updateForDom"
    ></form-title-setting>
    <!-- end 标题 -->

    <!-- start 描述信息 -->
    <form-describe-setting :field="field" :mode="mode" @input="updateForDom"></form-describe-setting>
    <!-- end 描述信息 -->

    <!-- start 校验 -->
    <div class="form-setting-group form-setting-item">
      <h4 class="form-item-title">{{$t('common.base.check')}}</h4>
      <div class="form-item-box">
        <!-- 必填 -->
        <form-required-setting :field="field" @input="update"></form-required-setting>
      </div>
    </div>
    <!-- end 校验 -->

    <!-- start 默认值 -->
    <div class="form-setting-group form-setting-item" v-if="1 == 2">
      <h4 class="form-item-title">{{$t('common.base.defaultValue')}}</h4>
      <div class="form-item-box">
        <el-checkbox
          v-model="defaultValueConfig.isCurrentAddress"
          @input="update(defaultValueConfig, 'defaultValueConfig', true)"
          :true-label="1"
          :false-label="0"
        >
          {{$t('common.form.preview.address.onlyUseInMobileTips')}}
        </el-checkbox>
      </div>
    </div>
    <!-- end 默认值 -->

    <!-- start 字段权限 -->
    <div class="form-setting-group form-setting-item" v-if="1 == 2">
      <h4 class="form-item-title">{{$t('common.base.fieldPermissions')}}</h4>
      <div class="form-item-box">
        <!-- 移动端列表展示 -->
        <mobile-show-setting
          v-if="isTaskMode"
          :field="field"
          :fields="fields"
          @input="update"
        ></mobile-show-setting>
        <!-- 可见性 -->
        <form-visible-setting :field="field" @input="update"></form-visible-setting>
        <!-- 支持高级搜索 -->
        <form-search-setting
          :field="field"
          @input="update"
          v-if="!isTaskForm"
        ></form-search-setting>
        <!-- 是否对客户可见 -->
        <form-visible-customer-setting
          :field="field"
          @input="update"
          v-if="isShowVisibleCustomer"
        ></form-visible-customer-setting>
      </div>
    </div>
    <!-- end 字段权限 -->

    <!-- start 其他设置 -->
    <div class="form-setting-group form-setting-item" v-if="1 == 2 && allowPublicSet">
      <h4 class="form-item-title">{{$t('common.base.otherSet')}}</h4>
      <div class="form-item-box">
        <!-- 设为公用字段 -->
        <form-public-setting :field="field" @input="update"></form-public-setting>
      </div>
    </div>
    <!-- end 其他设置 -->
  </div>
</template>

<script>
import SettingMixin from "@src/component/form/mixin/setting";
import { settingProps } from "@src/component/form/components/props";
/* enum */
import TableNameEnum from "@model/enum/TableNameEnum.ts";

export default {
  name: "form-product-complete-address-setting",
  mixins: [SettingMixin],
  props: settingProps,
  computed: {
    defaultValueConfig() {
      return this.field.setting.defaultValueConfig || {};
    },
    // 是否是工单或者回执表单模块或者附加组件表单
    isTaskForm() {
      return (
        [
          TableNameEnum.Task,
          TableNameEnum.TaskReceipt,
          TableNameEnum.TaskCard,
          TableNameEnum.CustomerCard,
          TableNameEnum.ProductCard,
          TableNameEnum.EventCard,
        ].indexOf(this.mode) > -1
      );
    },
  },
  methods: {
    updateForDom(event) {
      let el = event.target;
      let prop = el.dataset.prop;
      let value = el.value;

      this.update(value, prop);
    },
    update(value, prop, isSetting = false) {
      this.$emit("input", { value, prop, isSetting });
    },
  },
};
</script>
